﻿using System;
using System.Collections.Generic;
using System.ServiceModel;

using Gman.Service.Message.Resquest_Response;

namespace Gman.Service.Interfaces
{
    [ServiceContract]
    public interface IOperacionService
    {
        [OperationContract]
        String HelloWorld();

        #region Sede
        [OperationContract]
        Response_Sede RegistrarSede(Request_Sede _Request_Sede);

        [OperationContract]
        Response_Sede ListarSedes(Request_Sede _Request_Sede);

        [OperationContract]
        Response_Sede ActualizarSede(Request_Sede _Request_Sede);

        [OperationContract]
        Response_Sede EliminarSede(Request_Sede _Request_Sede);

        [OperationContract]
        Response_Sede ObtenerSede(Request_Sede _Request_Sede);

        #endregion
        
        #region Bien
        [OperationContract]
        Response_Bien RegistrarBien(Request_Bien request);

        [OperationContract]
        Response_Bien ObtenerBien(Request_Bien request);

        [OperationContract]
        Response_Bien ListarBien(Request_Bien request);

        [OperationContract]
        Response_Bien ActualizarBien(Request_Bien request);

        #endregion

        #region Personal
        [OperationContract]
        Response_Personal RegistrarPersonal(Request_Personal _Request_Personal);

        [OperationContract]
        Response_Personal ListarPersonal(Request_Personal _Request_Personal);

        [OperationContract]
        Response_Personal ActualizarPersonal(Request_Personal _Request_Personal);

        [OperationContract]
        Response_Personal EliminarPersonal(Request_Personal _Request_Personal);
        
        [OperationContract]
        Response_Personal ObtenerPersonal(Request_Personal _Request_Personal);


        [OperationContract]
        Response_Personal ListarPersonalxTipo(Request_Personal Request);

        #endregion 

        #region Proveedor





        [OperationContract]
        Response_Proveedor GetProveedorById(Request_Proveedor request);


        [OperationContract]
        Response_Proveedor GetProveedorByRuc(Request_Proveedor request);



        [OperationContract]
        Response_Proveedor RegistrarProveedor(Request_Proveedor request);

        [OperationContract]
        Response_Proveedor ListProveedor(Request_Proveedor request);



        [OperationContract]
        Response_Proveedor BuscarProveedor(Request_Proveedor request);

        [OperationContract]
        Response_Proveedor ActualizarProveedor(Request_Proveedor request);

        #endregion

        #region ImagenBien

        [OperationContract]
        Response_ImagenBien RegistrarImagenBien(Request_ImagenBien request);

        [OperationContract]
        Response_ImagenBien ListarImagenBien(Request_ImagenBien request);

        [OperationContract]
        Response_ImagenBien ObtenerImagenBien(Request_ImagenBien request);

        #endregion

        #region BajaActivos

        [OperationContract]
        Response_BajaActivo RegistrarBajaActivo(Request_BajaActivo request);

        [OperationContract]
        Response_BajaActivo ListarBajaActivo(Request_BajaActivo request);

        [OperationContract]
        Response_BajaActivo ObtenerBajaActivo(Request_BajaActivo request);

        [OperationContract]
        Response_BajaActivo ActualizarBajaActivo(Request_BajaActivo request);

        #endregion

        #region BajaActivoDetalle

        [OperationContract]
        Response_BajaActivoDetalle RegistrarBajaActivoDetalle(Request_BajaActivoDetalle request);

        [OperationContract]
        Response_BajaActivoDetalle ListarBajaActivoDetalle(Request_BajaActivoDetalle request);

        [OperationContract]
        Response_BajaActivoDetalle ObtenerBajaActivoDetalle(Request_BajaActivoDetalle request);

        [OperationContract]
        Response_BajaActivoDetalle ActualizarBajaActivoDetalle(Request_BajaActivoDetalle request);

        [OperationContract]
        Response_BajaActivoDetalle EliminarBajaActivoDetalle(Request_BajaActivoDetalle request);

        #endregion

        #region Material

        [OperationContract]
        Response_Material ListarStockMaterial(Request_Material _Request_Material);

        [OperationContract]
        Response_Material ObtenerMaterial(Request_Material _Request_Material);

        [OperationContract]
        Response_Material RegistrarMaterial(Request_Material _Request_Material);

        [OperationContract]
        Response_Material ActualizarMaterial(Request_Material _Request_Material);

        [OperationContract]
        Response_Material ListaProveedoresXMaterial(Request_Material _Request_Material);

        #endregion

        #region Servicios
        [OperationContract]
        Response_Servicio RegistrarServicio(Request_Servicio _Request_Servicio);

        [OperationContract]
        Response_Servicio ActualizarServicio(Request_Servicio _Request_Servicio);

        [OperationContract]
        Response_Servicio ObtenerServicio(Request_Servicio _Request_Servicio);

        [OperationContract]
        Response_Servicio ListarServicios(Request_Servicio _Request_Servicio);

        [OperationContract]
        Response_Servicio ListarBienXServicio(Request_Servicio _Request_Servicio);

        #endregion





        #region TransferenciaActivos

        [OperationContract]
        Response_TransferenciaActivos ListarTransferenciaActivo(Request_TransferenciaActivos request);

        [OperationContract]
        Response_TransferenciaActivos RegistrarTransferenciaActivo(Request_TransferenciaActivos request);

        [OperationContract]
        Response_TransferenciaActivos ObtenerTransferenciaActivo(Request_TransferenciaActivos request);

        [OperationContract]
        Response_TransferenciaActivos ActualizarTransferenciaActivo(Request_TransferenciaActivos request);

        #endregion



        #region TransferenciaActivosDetalle

        [OperationContract]
        Response_TransferenciaActivoDetalle ListarTransferenciaActivoDetalle(Request_TransferenciaActivoDetalle request);

        #endregion




        #region Sistema

        [OperationContract]
        Response_Bien ObtenerSistema(Request_Bien request);

        [OperationContract]
        Response_Bien BuscarActivos(Request_Bien request);

        [OperationContract]
        Response_DetalleBien RegistrarSistema(Request_DetalleBien request);

        [OperationContract]
        Response_DetalleBien ListarSistema(Request_DetalleBien request);

        [OperationContract]
        Response_Bien ObtenerBienxID(Request_Bien request);

        #endregion
    }
}
